cities = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "city";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: City
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
counties = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "county";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: County
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
evaluations = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "evaluation";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Evaluation
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
evaluationPractices = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "evaluationPractice";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: EvaluationPractice
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
funds = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "fund";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				params.program_year = typeof params.program_year == "undefined" ? selectedProgramYear : params.program_year;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Fund
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
fundWorkshops = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "fundWorkshop";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: FundWorkshop
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
highSchools = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "highSchool";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: HighSchool
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
institutions = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "institution";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Institution
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
mobileFacebookLikes = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "mobileFacebookLike";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: MobileFacebookLike
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
oaps = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "oap";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				params.program_year = typeof params.program_year == "undefined" ? selectedProgramYear : params.program_year;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: OAP
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
oapValues = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "oapValue";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.active = typeof params.active == "undefined" ? 1 : "";
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: OAPValue
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
orders = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "order";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				params.program_year = typeof params.program_year == "undefined" ? selectedProgramYear : params.program_year;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Order
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
orderValues = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "orderValue";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.active = typeof params.active == "undefined" ? 1 : "";
			}
			return params;
		}
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: OrderValue
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
organizations = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "organization";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				if (authUser.role == "Super User") {
					params.organization_id = "";
				} else if (authUser.role == "Regional Admin") {
					params.region_id = authUser.regionId;
				} else {
					params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				}
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Organization
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
pas = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "pa";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				params.program_year = typeof params.program_year == "undefined" ? selectedProgramYear : params.program_year;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: PA
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
payments = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "payment";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Payment
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
paymentSchedules = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "paymentSchedule";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: PaymentSchedule
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
roles = [
	{role: "Organizer"},
	{role: "Site Contact"}
];
scholarships = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "scholarship";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Scholarship
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
siteComputers = [
	{computers: "None"},
	{computers: "Less than 10"},
	{computers: "10 to 20"},
	{computers: "21 to 50"},
	{computers: "More than 50"}
];
sites = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "site";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Site
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
siteTypes = [
	{site_type: "High School"},
	{site_type: "College Campus"},
	{site_type: "Community Organizer"}
];
students = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "student";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Student
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
studentFacebooks = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "studentFacebook";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: StudentFacebook
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
studentFacebookLikes = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "studentFacebookLike";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: StudentFacebookLike
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
studentPractices = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "studentPractice";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: StudentPractice
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
users = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "user";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: User
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
statuses = [
	{status_id: 0, status: "Not Approved"},
	{status_id: 1, status: "Approved"}
];
volunteers = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "volunteer";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Volunteer
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
workshopVolunteers = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "workshopVolunteer";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: WorkshopVolunteer
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
workshops = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "workshop";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				if (authUser.role == "Super User") {
					params.organization_id = "";
				} else if (authUser.role == "Regional Admin") {
					params.region_id = authUser.regionId;
				} else {
					params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				}
				params.program_year = typeof params.program_year == "undefined" ? selectedProgramYear : params.program_year;
			}
			return params;
		}		
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: Workshop
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
	/*,requestStart: function(e) {
		//console.log("workshops requestStart event fired");
		//console.log(e);
	},
	requestEnd: function(e) {
		//console.log("workshops requestEnd event fired");
		//console.log(e);
	},
	sync: function(e) {
		//console.log("workshops sync event fired");
		//console.log(e);
	},
	change: function(e) {
		if (e.action) {
			//console.log(e.action);
		}
	}*/
});
zipCodes = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		create: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		update: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		destroy: {
			url: apiUrl,
			dataType: "json",
			type: "POST",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "zipCode";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
			}
			return params;
		}	
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: ZipCode
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
managers = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "user";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				params.role = "Site Contact";
			}
			return params;
		}
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: User
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
organizers = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: false
		},
		parameterMap: function(params, transportType) {
			params.objType = "user";
			params.method = transportType;
			if (transportType == "read") {
				params.deleted = typeof params.deleted == "undefined" ? 0 : params.deleted;
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
				params.role = "Organizer";
			}
			return params;
		}
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json",
		model: User
	},
	serverPaging: false,
	serverSorting: false,
	batch: false
});
workshopHolidays = [
	{name: "New Year's Day", holiday: new Date(2013, 0, 1), forbid: true},
	{name: "Day after New Year's Day", holiday: new Date(2013, 0, 2), forbid: true},
	{name: "Martin Luther King's Birthday", holiday: new Date(2013, 0, 21), forbid: true},
	{name: "Chinese New Year", holiday: new Date(2013, 1, 10), forbid: false},
	{name: "Lincoln's Birthday", holiday: new Date(2013, 1, 11), forbid: false},
	{name: "Ash Wednesday", holiday: new Date(2013, 1, 13), forbid: false},
	{name: "Valentine's Day", holiday: new Date(2013, 1, 14), forbid: false},
	{name: "Washington's Birthday", holiday: new Date(2013, 1, 18), forbid: true}
];
workshopAttendanceByProgramYear = new kendo.data.DataSource({
	transport: {
		read: {
			url: apiUrl,
			dataType: "json",
			type: "GET",
			cache: true
		},
		parameterMap: function(params, transportType) {
			params.chartType = "workshopAttendanceByProgramYear";
			params.method = "chart";
			if (transportType == "read") {
				params.organization_id = typeof params.organization_id == "undefined" ? authUser.organizationId : params.organization_id;
			}
			return params;
		}
	},
	sort: {
		field: "program_year",
		dir: "asc"
	},
	schema: {
		data: "data",
		total: "recordcount",
		type: "json"
	}
});
validatorMessages = {
	required: "Required",
	number: "Invalid number",
	tel: "Invalid phone",
	email: "Invalid e-mail",
	url: "Invalid URL"
}
offlineReasons = [
	{reason: "No computers", description: "The site does not have computers"},
	{reason: "Community site", description: "The site is a community facility without available computers"},
	{reason: "Too many students", description: "Workshop will serve too many students for the available computers"},
	{reason: "Too few volunteers", description: "Not enough volunteers to support an online workshop"},
	{reason: "Other", description: "Other reason, please describe"}
]

